1. Field of the Invention
The present invention relates generally to an improved data processing system. More specifically, the present invention is directed to a computer implemented method, apparatus, and computer useable program code for caching peripheral component interconnect device expansion read only memory data in basic input output system memory.
2. Description of the Related Art
Computer systems generally include hardware resources, including but not limited to one or more central processing units, such as microprocessors, and one or more memory devices, such as random access memory (RAM) devices, which make up the system memory. An operating system provides the software that manages the hardware and software resources of the computer system, including the microprocessor and system memory. The operating system generally provides a user interface such that the resources may be accessed and controlled by a user.
When a computer is initially powered on, the system RAM is empty. To configure the computer system to facilitate the use of its resources, the operating system is loaded into the system RAM. The process of launching the operating system is generally referred to as the “system boot.” Once the boot process is complete and the operating system is loaded into the system RAM, the operating system may be implemented to control and manage both hardware and software resources. However, before the system boot, the system RAM cannot be implemented to execute commands because the operating system has not been loaded into the system RAM. To provide boot instructions for loading the operating system, a basic input output system (BIOS) is generally provided. The BIOS is a firmware-resident program that initializes a computer system following power-on or reset operations. Various components of the computer system are initialized, one by one, after which the operating system is booted. The BIOS is stored on a firmware device, such as a read only memory (ROM) chip or a flash memory chip in the computer system.
Because each computer system may include different hardware components, the BIOS software is also configured to perform a power-on self-test (POST) to test the functionality of the different hardware components on the computer system. The POST generally refers to a diagnostic testing sequence executed by the BIOS software to determine whether the RAM, peripheral devices, such as disk drives, and any other hardware components are operating properly. Further, a number of peripheral component interconnect (PCI) devices may be coupled to the computer system through PCI plug-in expansion slots.
These PCI devices, such as, for example, expansion ROM, network devices, video, and audio chips, may be included on a PCI expansion plug-in card, which is configured to be coupled to the computer system through the PCI plug-in expansion slots. Each PCI device on a PCI plug-in expansion card has an associated expansion ROM, which contains microcode that enables the PCI device to function within the computer system. At system boot, the system BIOS configures the computer system in accordance with the current resources, including any PCI plug-in expansion cards that may be coupled into the computer system. Accordingly, the system BIOS also facilitates the activation of the additional microcode that resides in the expansion ROM on the plug-in expansion cards for each PCI device.
As can be appreciated, the more PCI devices coupled to the computer system through PCI slots, the longer the booting of the computer system may take. Consequently, booting such a computer system that includes a plurality of PCI devices may take several minutes. In certain applications, this timing penalty may be disadvantageous. In addition, including an expansion ROM for each PCI device on the PCI plug-in card increases production costs and decreases space on the PCI plug-in card.
Therefore, it would be advantageous to have an improved method, apparatus, and computer useable program code for caching PCI device expansion ROM microcode in BIOS memory.